/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package mx.itschapala.dsw2.vista;

import java.util.ArrayList;
import java.util.List;
import javax.ejb.EJB;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.event.ActionEvent;
import mx.itschapala.dsw2.bar.bl.BebidaBlLocal;
import mx.itschapala.dsw2.bar.bl.UsuarioBlLocal;
import mx.itschapala.dsw2.bar.bl.VentaBl;
import mx.itschapala.dsw2.bar.bl.VentaBlLocal;
import mx.itschapala.dsw2.bar.modelo.Bebida;
import mx.itschapala.dsw2.bar.modelo.Usuario;
import mx.itschapala.dsw2.bar.modelo.Venta;

/**
 *
 * @author Dhavis
 */
@ManagedBean
@SessionScoped
public class VentaBean {
    //---------EJB-------------------------------

    @EJB
    private VentaBlLocal ventaBl;
    @EJB
    private UsuarioBlLocal usuarioBl;
    @EJB
    private BebidaBlLocal bebidaBl;
    //--------variables---------------------------
    private List<Bebida> listaBebida;
    private List<VentaBean> lventa;
    private List<Usuario> listaUsuario;
    private VentaBean venta;
    private Usuario usuario;
    private String accion;
    private int usuarioSeleccionado;
    private int idUsuarioSeleccionado;
//-----------constructor--------------------------------

    public VentaBean() {
        listaUsuario = new ArrayList<Usuario>();
        listaBebida = new ArrayList<Bebida>();
        venta = new VentaBean();
    }
//-----------metodos GET y SET-----------------------

    public UsuarioBlLocal getUsuarioBl() {
        return usuarioBl;
    }

    public void setUsuarioBl(UsuarioBlLocal usuarioBl) {
        this.usuarioBl = usuarioBl;
    }

    public BebidaBlLocal getBebidaBl() {
        return bebidaBl;
    }

    public void setBebidaBl(BebidaBlLocal bebidaBl) {
        this.bebidaBl = bebidaBl;
    }

    public List<Bebida> getListaBebida() {
       lventa= (List<VentaBean>) lventa.get(usuarioSeleccionado);
        return listaBebida;
    }

    public void setListaBebida(List<Bebida> listaBebida) {
        this.listaBebida = listaBebida;
    }

    public List<VentaBean> getLventa() {
        return lventa;
    }

    public void setLventa(List<VentaBean> lventa) {
        this.lventa = lventa;
    }

    public List<Usuario> getListaUsuario() {
        listaUsuario = usuarioBl.getAll();
        return listaUsuario;
    }

    public void setListaUsuario(List<Usuario> listaUsuario) {
        this.listaUsuario = listaUsuario;
    }

    public VentaBean getVenta() {
        return venta;
    }

    public void setVenta(VentaBean venta) {
        this.venta = venta;
    }

    public Usuario getUsuario() {
        return usuario;
    }

    public void setUsuario(Usuario usuario) {
        this.usuario = usuario;
    }

    public int getUsuarioSeleccionado() {
        return usuarioSeleccionado;
    }

    public void setUsuarioSeleccionado(int usuarioSeleccionado) {
        this.usuarioSeleccionado = usuarioSeleccionado;
    }

    public int getIdUsuarioSeleccionado() {
        return idUsuarioSeleccionado;
    }

    public void setIdUsuarioSeleccionado(int idUsuarioSeleccionado) {
        this.idUsuarioSeleccionado = idUsuarioSeleccionado;
    }

    private void setIdUsuarioSeleccionado(Usuario findById) {
        throw new UnsupportedOperationException("Not yet implemented");
    }

    //-----------Acciones--------------------------------    
    public String procesarAccion() {
        if (accion.equalsIgnoreCase("Nuevo")) {
            ventaBl.equals(listaBebida);
        }
        if (accion.equalsIgnoreCase("Editar")) {
        }
        accion = "";
        return "VentaLista";
    }
    //-----------Listeners------------------------------    

    public void prepararNuevo(ActionEvent evt) {//accionEvent de faces
        venta = new VentaBean();
        accion = "Nuevo";
    }

    public void prepararEditar(ActionEvent evt) {
        System.out.println(evt.getComponent().getClientId());
        String arr[] = evt.getComponent().getClientId().split(":");
        String num = arr[3];
        int index = Integer.parseInt(num);
        System.out.println("el numero es: " + index);
        // loan=lista.get(index);
        accion = "Editar";
    }

    public void prepararEliminar(ActionEvent evt) {
        String arr[] = evt.getComponent().getClientId().split(":");
        String num = arr[3];
        int index = Integer.parseInt(num);
        System.out.println("el numero es: " + index);
        //loan=lista.get(index);
        accion = "Eliminar";
    }

    public void eliminar(ActionEvent evt) {
        String arr[] = evt.getComponent().getClientId().split(":");
        String num = arr[2];
        int index = Integer.parseInt(num);
        System.out.println("el numero es: " + index);
        listaBebida.remove(index);
    }
//
//    public void agregarVenta(ActionEvent evt) {        
//        Bebida drink = bebidaBl.findById();
//        if (drink != null) {
//            listaBebida.add(drink);
//        }
//    }

    public void procesarSeleccion(ActionEvent evt) {
        venta.setIdUsuarioSeleccionado(usuarioBl.findById(usuarioSeleccionado));
    }
}